#include<gflags/gflags.h>
#include<iostream>

DEFINE_string(ip, "127.0.0.1", "这是服务器的监听IP");
DEFINE_int32(port, 8080, "这是服务器的监听端口, 格式:8080");
DEFINE_bool(debug_enable, true, "是否启用调试模式, 格式: true/false");

int main(int argc, char *argv[])
{
    /*argc 和 argv 就是 main 的入口参数
    • 第三个参数被称为 remove_flags。如果它为 true, 表示
    ParseCommandLineFlags 会从 argv 中移除标识和它们的参数，相应减少 argc 的值。
    如果它为 false,ParseCommandLineFlags 会保留 argc 不变，但将会重新调整它们
    的顺序，使得标识再前面。
    */
    google::ParseCommandLineFlags(&argc, &argv, true);
    std::cout << FLAGS_ip << std::endl;
    std::cout << FLAGS_port << std::endl;
    std::cout << FLAGS_debug_enable << std::endl;
    /*
    xiang11@VM-16-8-ubuntu:~/chatsystem/server/demo/gflags$ ./main
    127.0.0.1
    8080
    1
    xiang11@VM-16-8-ubuntu:~/chatsystem/server/demo/gflags$ ./main --port=9090 --ip="1111" --debug_enable=false
    1111
    9090
    0
    xiang11@VM-16-8-ubuntu:~/chatsystem/server/demo/gflags$ ./main --flagfile main.conf
    "192.168.2.2" 
    7502
    0
 ./main --help
  Flags from main.cc:
    -debug_enable (是否启用调试模式, 格式: true/false) type: bool
      default: true
    -ip (这是服务器的监听IP) type: string default: "127.0.0.1"
    -port (这是服务器的监听端口, 格式:8080) type: int32
      default: 8080


    */
    return 0;
}